
package com.ce.pms.charge.vo;

import java.math.BigDecimal;
import java.util.Date;

import com.ce.pms.common.util.BigDecimalUtil;
import com.sitechasia.webx.core.model.IViewObject;

/**
 * 
 * 	名称: com.ce.pms.renovation.vo.ChargeRecordVO <br>
 * 费用记录VO
 *
 * @author  付湘辉  <br>
 * Created on： 2008-12-24 <br>
 * @author <br>
 * update on： <br>
 * why: <br>
 */
public class ChargeRecordVO implements IViewObject{

	/**
	 * long：serialVersionUID
	 */
	private static final long serialVersionUID = -5252424692425877202L;

	/**
	 * 账户所属房屋id
	 */
	protected Long accountHouseId;
	
	/**
	 * 帐户id
	 */
	private Long accountId;

	/**
	 * 交易码编号
	 */
	private String bizCode;


	/**
	 * 业务ID
	 */
	private Long bizId;


	/**
	 * 业务模块 
	 * 001-装修管理
	 * 002-客户事件
	 * 003-入伙管理
	 */
	private String bizModule;

	/**
	 * 业务类型
	 * 001	装修许可收费
	 * 002	装修出入证收费
     * 003	装修出入证退费
     * 004	装修保证金核算
	 * 005	客服派工收费
	 * 006	入伙预交款
	 */
	private String bizType;

	/**
	 * 交易码ID
	 */
	private Long businessId;

	/**
	 * 创建者ID
	 */
	private Long creator;

	/**
	 * 入账方式, 001-直接入账，002-合并入账
	 */
	private String enterAccountMethod;

	/**
	 * 是否已交易 1: 是		0: 否
	 */
	private String handleYn;
	
	/**
	 * 房间ID（只有产权房）
	 */
	private Long houseId;

	/**
	 * 房间号码（只有产权房）
	 */
	private String houseNumber;

	/**
	 * 费用项目名称
	 */
	private String itemName;

	/**
	 * 主键
	 */
	private Long keyword;
	
	/**
	 * 修改者
	 */
	private Long modifier;
	
	/**
	 * 修改时间
	 */
	private Date modifyDate;
	
	/**
	 * 001-押金收款：是在押金帐户中产生一条收款帐务记录
	   002 押金返还：是在押金帐户中产生一条正的帐务收款记录
	   003 押金抵冲：是在押金账户中产生一条抵冲专用交易码的负的帐务收款记录，同时在物业收费中增加一笔"已缴罚金"，同时增加一笔抵冲收到罚金记录
	   004 物业收费：是在物业收费账户中产生两笔账务记录，一个为应收记录，一个为实收记录
	   005 预交款收款
	 */
	private String operationType;
	
	/**
	 * 操作人
	 */
	private String operatorName;

	/**
	 * 收费周期 如：200801
	 */
	private String period;
	
	/**
	 * 收费周期id
	 */
	private Long periodId;
	
	/**
	 * 备注
	 */
	private String remark;

	/**
	 * 子帐户id
	 */
	private Long subAccountId;
	
	/**
	 * 金额
	 */
	private BigDecimal sum = new BigDecimal(000l,BigDecimalUtil.getMathContext());

	/**
	 * 创建时间
	 */
	private Date sysDate;

	/**
	 *  默认构造器
	 */
	public ChargeRecordVO() {
		super();
	}

	/**
	 * 新增用构造器
	 * @param handleYn 处理标志
	 * @param operationType 操作类型
	 * @param enterAccountMethod 入账方式
	 * @param sum 金额
	 * @param remark 备注
	 * @param houseId 房屋ID
	 * @param bizModule 业务模块
	 * @param bizType 业务类型
	 * @param bizId 业务ID
	 * @param businessId 交易码ID
	 * @param itemName 项目名称
	 * @param creator 创建人ID
	 */
	public ChargeRecordVO(String handleYn, String operationType, String enterAccountMethod, BigDecimal sum, String remark, Long houseId, String bizModule, String bizType, Long bizId, Long businessId, String itemName, Long creator) {
		super();
		this.handleYn = handleYn;
		this.operationType = operationType;
		this.enterAccountMethod = enterAccountMethod;
		this.sum = sum;
		this.remark = remark;
		this.houseId = houseId;
		this.bizModule = bizModule;
		this.bizType = bizType;
		this.bizId = bizId;
		this.businessId = businessId;
		this.itemName = itemName;
		this.creator = creator;
	}

	/**
	 * @return the accountId
	 */
	public Long getAccountId() {
		return accountId;
	}

	/**
	 * @return the bizCode
	 */
	public String getBizCode() {
		return bizCode;
	}

	/**
	 * @return the bizId
	 */
	public Long getBizId() {
		return bizId;
	}

	/**
	 * @return the bizModule
	 */
	public String getBizModule() {
		return bizModule;
	}

	/**
	 * @return the bizType
	 */
	public String getBizType() {
		return bizType;
	}

	/**
	 * @return the businessId
	 */
	public Long getBusinessId() {
		return businessId;
	}

	/**
	 * @return the creator
	 */
	public Long getCreator() {
		return creator;
	}

	/**
	 * @return the enterAccountMethod
	 */
	public String getEnterAccountMethod() {
		return enterAccountMethod;
	}

	/**
	 * @return the handleYn
	 */
	public String getHandleYn() {
		return handleYn;
	}

	/**
	 * （只有产权房）
	 * @return the houseId
	 */
	public Long getHouseId() {
		return houseId;
	}

	/**
	 * （只有产权房）
	 * @return the houseNumber
	 */
	public String getHouseNumber() {
		return houseNumber;
	}

	/**
	 * @return the itemName
	 */
	public String getItemName() {
		return itemName;
	}

	/**
	 * @return the keyword
	 */
	public Long getKeyword() {
		return keyword;
	}

	/**
	 * @return the modifier
	 */
	public Long getModifier() {
		return modifier;
	}

	/**
	 * @return the modifyDate
	 */
	public Date getModifyDate() {
		return modifyDate;
	}

	/**
	 * @return the operationType
	 */
	public String getOperationType() {
		return operationType;
	}

	/**
	 * @return the operatorName
	 */
	public String getOperatorName() {
		return operatorName;
	}

	/**
	 * @return the period
	 */
	public String getPeriod() {
		return period;
	}

	/**
	 * @return the periodId
	 */
	public Long getPeriodId() {
		return periodId;
	}

	/**
	 * @return the remark
	 */
	public String getRemark() {
		return remark;
	}

	/**
	 * @return the subAccountId
	 */
	public Long getSubAccountId() {
		return subAccountId;
	}

	/**
	 * @return the sum
	 */
	public BigDecimal getSum() {
		return sum;
	}

	/**
	 * @return the sysDate
	 */
	public Date getSysDate() {
		return sysDate;
	}

	/**
	 * @param accountId the accountId to set
	 */
	public void setAccountId(Long accountId) {
		this.accountId = accountId;
	}

	/**
	 * @param bizCode the bizCode to set
	 */
	public void setBizCode(String bizCode) {
		this.bizCode = bizCode;
	}

	/**
	 * @param bizId the bizId to set
	 */
	public void setBizId(Long bizId) {
		this.bizId = bizId;
	}

	/**
	 * @param bizModule the bizModule to set
	 */
	public void setBizModule(String bizModule) {
		this.bizModule = bizModule;
	}

	/**
	 * @param bizType the bizType to set
	 */
	public void setBizType(String bizType) {
		this.bizType = bizType;
	}

	/**
	 * @param businessId the businessId to set
	 */
	public void setBusinessId(Long businessId) {
		this.businessId = businessId;
	}

	/**
	 * @param creator the creator to set
	 */
	public void setCreator(Long creator) {
		this.creator = creator;
	}

	/**
	 * @param enterAccountMethod the enterAccountMethod to set
	 */
	public void setEnterAccountMethod(String enterAccountMethod) {
		this.enterAccountMethod = enterAccountMethod;
	}

	/**
	 * @param handleYn the handleYn to set
	 */
	public void setHandleYn(String handleYn) {
		this.handleYn = handleYn;
	}

	/**
	 * （只有产权房）
	 * @param houseId the houseId to set
	 */
	public void setHouseId(Long houseId) {
		this.houseId = houseId;
	}

	/**
	 * （只有产权房）
	 * @param houseNumber the houseNumber to set
	 */
	public void setHouseNumber(String houseNumber) {
		this.houseNumber = houseNumber;
	}

	/**
	 * @param itemName the itemName to set
	 */
	public void setItemName(String itemName) {
		this.itemName = itemName;
	}

	/**
	 * @param keyword the keyword to set
	 */
	public void setKeyword(Long keyword) {
		this.keyword = keyword;
	}

	/**
	 * @param modifier the modifier to set
	 */
	public void setModifier(Long modifier) {
		this.modifier = modifier;
	}

	/**
	 * @param modifyDate the modifyDate to set
	 */
	public void setModifyDate(Date modifyDate) {
		this.modifyDate = modifyDate;
	}

	/**
	 * @param operationType the operationType to set
	 */
	public void setOperationType(String operationType) {
		this.operationType = operationType;
	}

	/**
	 * @param operatorName the operatorName to set
	 */
	public void setOperatorName(String operatorName) {
		this.operatorName = operatorName;
	}

	/**
	 * @param period the period to set
	 */
	public void setPeriod(String period) {
		this.period = period;
	}

	/**
	 * @param periodId the periodId to set
	 */
	public void setPeriodId(Long periodId) {
		this.periodId = periodId;
	}

	/**
	 * @param remark the remark to set
	 */
	public void setRemark(String remark) {
		this.remark = remark;
	}

	/**
	 * @param subAccountId the subAccountId to set
	 */
	public void setSubAccountId(Long subAccountId) {
		this.subAccountId = subAccountId;
	}

	/**
	 * @param sum the sum to set
	 */
	public void setSum(BigDecimal sum) {
		this.sum = sum;
	}

	/**
	 * @param sysDate the sysDate to set
	 */
	public void setSysDate(Date sysDate) {
		this.sysDate = sysDate;
	}

	public Long getAccountHouseId() {
		return accountHouseId;
	}

	public void setAccountHouseId(Long accountHouseId) {
		this.accountHouseId = accountHouseId;
	}
}
